<?php
namespace StarCloud\Library;
use Qiniu\Storage\UploadManager;
use Qiniu\Auth;

class Qiniu
{
    const accessKey = "n5lONp77aHcEYxtxxCbogkVV_k-ffm6lsansD_az";
    const secretKey = "-GF3EIG5B3dLWOKG4zwEOBfSJslALHT6rodO6bs6";
    const bucket = "doumengvip";

    public static function getAuth()
    {
        return new  Auth(self::accessKey, self::secretKey);
    }

    public static function getToken()
    {
        return self::getAuth()->uploadToken(self::bucket);
    }

    /**
     * @throws \Exception
     */
    public static function putFile($fileName, $filePath)
    {
        $uploadMgr = new UploadManager();
        $token = self::getAuth()->uploadToken(self::bucket);

        $data = $uploadMgr->putFile($token, $fileName, $filePath);

        return $data[0];
    }

    public static function putFileByToken($token, $fileName, $filePath)
    {
        $uploadMgr = new UploadManager();

        $data = $uploadMgr->putFile($token, $fileName, $filePath);

        return $data[0];
    }

    /**
     * 远程图片下载工具
     */
    public static function downLoadImg($url,$filename='', $save_dir='',$type=0){
        if(trim($url)==''){
            return array('file_name'=>'','save_path'=>'','error'=>1);
        }
        if(trim($save_dir)==''){
            $save_dir= ROOT_PATH . '/static/image/';
        }

        if(trim($filename)==''){//保存文件名
            $ext=strrchr($url,'.');
            if($ext!='.gif'&&$ext!='.jpg' && $ext != '.png'){
                return array('file_name'=>'','save_path'=>'','error'=>3);
            }
            $filename=time().$ext;
        }
        if(0!==strrpos($save_dir,'/')){
            $save_dir.='/';
        }
        //创建保存目录
        if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){
            return array('file_name'=>'','save_path'=>'','error'=>5);
        }
        //获取远程文件所采用的方法
        if($type){
            $ch=curl_init();
            $timeout=300;
            curl_setopt($ch,CURLOPT_URL,$url);
            curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
            curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
            $img=curl_exec($ch);
            curl_close($ch);
        }else{
            ob_start();
            readfile($url);
            $img=ob_get_contents();
            ob_end_clean();
        }
        //$size=strlen($img);
        //文件大小
        $fp2=@fopen($save_dir.$filename,'a');
        fwrite($fp2,$img);
        fclose($fp2);
        unset($img,$url);
        return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0);
    }
}